XAML (Extensible Application Markup Language) ফাইলের স্ট্রাকচার সাধারণত XML ফাইলের মতোই হয়, কিন্তু এটি ইউজার ইন্টারফেস (UI) উপাদান এবং তাদের প্রপার্টি ডিক্লেয়ার করতে ব্যবহৃত হয়। XAML ফাইলের স্ট্রাকচারটি হায়ারার্কিক্যাল এবং ডিক্লারেটিভ। প্রতিটি XAML ফাইলের একটি রুট এলিমেন্ট থাকে, এবং এই এলিমেন্টের মধ্যে বিভিন্ন UI উপাদান নেস্টেড (nested) থাকে।
XAML ফাইল স্ট্রাকচার
XAML ফাইলের স্ট্রাকচার সাধারণত নিচের মতো হয়:
১. রুট এলিমেন্ট (Root Element)
প্রতিটি XAML ফাইলের একটি রুট এলিমেন্ট থাকে, যা ইউজার ইন্টারফেসের মূল কন্টেনার হিসেবে কাজ করে। সাধারণত এই রুট এলিমেন্ট Window, Page, বা UserControl হয়। এই রুট এলিমেন্টের মধ্যে অন্যান্য UI উপাদান এবং কন্ট্রোলস থাকে।
উদাহরণ:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Main Window" Height="300" Width="400">
<!-- Content goes here -->
</Window>
২. নেমস্পেস ডিক্লারেশন (Namespace Declaration)
XAML ফাইলের প্রথমেই xmlns অ্যাট্রিবিউট দ্বারা বিভিন্ন নেমস্পেস ডিক্লেয়ার করা হয়। এগুলো UI উপাদান এবং কাস্টম ক্লাসগুলোর অ্যাক্সেস দেয়।
উদাহরণ:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
xmlnsহল WPF (Windows Presentation Foundation) এর জন্য ডিফল্ট নেমস্পেস।xmlns:xহল XAML সম্পর্কিত অতিরিক্ত ফিচারগুলির জন্য নেমস্পেস, যেমনx:Name,x:Classইত্যাদি।
৩. ইউআই উপাদান (UI Elements)
XAML ফাইলে UI উপাদানগুলো ট্যাগের মাধ্যমে ডিক্লেয়ার করা হয়। প্রতিটি UI উপাদান একটি ট্যাগ দিয়ে সংজ্ঞায়িত হয় এবং তার প্রপার্টি অ্যাট্রিবিউট হিসেবে নির্ধারণ করা হয়।
উদাহরণ:
<Button Content="Click Me" Width="100" Height="50"/>
<TextBlock Text="Hello, XAML!" FontSize="20"/>
৪. নেস্টেড এলিমেন্ট (Nested Elements)
XAML ফাইলের মধ্যে UI উপাদানগুলোর হায়ারার্কিকাল স্ট্রাকচার থাকে। এক উপাদান অন্য উপাদানের মধ্যে থাকতে পারে। উদাহরণস্বরূপ, Grid অথবা StackPanel এর মধ্যে অন্যান্য UI উপাদান নেস্টেড থাকতে পারে।
উদাহরণ:
<Grid>
<Button Content="Click Me" Width="100" Height="50"/>
<TextBlock Text="Welcome to XAML" FontSize="16"/>
</Grid>
XAML ফাইলের মৌলিক উপাদান
১. রুট এলিমেন্ট (Root Element)
রুট এলিমেন্ট XAML ফাইলের প্রধান কন্টেইনার হয়, যা অ্যাপ্লিকেশনের UI কে ধারণ করে। এটি Window, Page, বা UserControl হতে পারে।
উদাহরণ:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="My Window" Height="300" Width="400">
<!-- Content goes here -->
</Window>
২. প্রপার্টি অ্যাট্রিবিউট (Property Attributes)
প্রতিটি UI উপাদান তার প্রপার্টি নির্ধারণ করতে অ্যাট্রিবিউট ব্যবহার করে। যেমন, Width, Height, Content ইত্যাদি।
উদাহরণ:
<Button Content="Click Me" Width="100" Height="50"/>
৩. স্টাইল এবং রিসোর্সেস (Styles and Resources)
XAML ফাইলের মধ্যে স্টাইল এবং রিসোর্স ডিক্লেয়ার করা হয়, যা UI উপাদানের কাস্টমাইজেশন এবং পুনঃব্যবহারযোগ্যতা নিশ্চিত করে।
উদাহরণ:
<Window.Resources>
<Style x:Key="ButtonStyle" TargetType="Button">
<Setter Property="Background" Value="LightBlue"/>
<Setter Property="Width" Value="150"/>
</Style>
</Window.Resources>
<Button Style="{StaticResource ButtonStyle}" Content="Styled Button"/>
৪. ডাটা বাইন্ডিং (Data Binding)
XAML ডাটা বাইন্ডিং সমর্থন করে, যা UI উপাদান এবং ডেটার মধ্যে ডায়নামিক সংযোগ তৈরি করে। এটি একটি অত্যন্ত গুরুত্বপূর্ণ ফিচার, যা MVVM (Model-View-ViewModel) আর্কিটেকচারে ব্যবহৃত হয়।
উদাহরণ:
<TextBlock Text="{Binding UserName}" />
৫. ইভেন্ট হ্যান্ডলিং (Event Handling)
XAML ফাইলে UI উপাদানের জন্য ইভেন্ট হ্যান্ডলিং অ্যাট্রিবিউট ব্যবহার করা হয়। সাধারণত, ইভেন্টগুলি কোড-বিহাইন্ড ফাইলে পরিচালিত হয়।
উদাহরণ:
<Button Content="Click Me" Click="Button_Click"/>
৬. কাস্টম প্রোপার্টি (Custom Properties)
যদি একটি প্রপার্টি কোনো জটিল ডেটা টাইপ ধারণ করে, তাহলে সেটি কাস্টম প্রোপার্টি সিনট্যাক্সের মাধ্যমে নির্ধারণ করা হয়।
উদাহরণ:
<Button>
<Button.Background>
<SolidColorBrush Color="LightBlue"/>
</Button.Background>
</Button>
উদাহরণ: একটি পূর্ণ XAML ফাইল
<Window x:Class="MyApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Main Window" Height="400" Width="600">
<Grid>
<StackPanel>
<TextBlock Text="Welcome to XAML" FontSize="24" Margin="10"/>
<Button Content="Click Me" Width="100" Margin="10" Click="Button_Click"/>
</StackPanel>
</Grid>
</Window>
সারাংশ
XAML ফাইলের স্ট্রাকচার সহজ এবং পরিষ্কার, যেখানে রুট এলিমেন্ট, নেস্টেড উপাদান, প্রপার্টি অ্যাট্রিবিউট, স্টাইল, ডাটা বাইন্ডিং এবং ইভেন্ট হ্যান্ডলিং ইত্যাদি মৌলিক উপাদানগুলোর মাধ্যমে UI ডিজাইন করা হয়। XAML এর মাধ্যমে ডিজাইন এবং কোডের মধ্যে স্পষ্ট বিভাজন এবং পুনঃব্যবহারযোগ্যতা নিশ্চিত করা যায়, যা একটি মজবুত এবং স্কেলেবল অ্যাপ্লিকেশন নির্মাণে সহায়ক।
Read more